iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
Python

Python大戰之網頁爬蟲系列 第 3

[Day 3] 網路爬蟲之基本概念

  • 分享至 

  • xImage
  •  

在今天的學習內容中,我將會學習網路爬蟲的相關概念,其中的小章節包含:

- 什麼是爬蟲?在哪裡應用?
- 爬蟲是如何發送請求並獲取網頁數據的
- 爬蟲有法律與道德問題?!

以上就是今天要學習的小章節。而在下方,我會先行參考及研究網路上的文獻資料,
再以自己的想法去理解並做出新的陳述。那就讓我們開始今天的學習吧!

一、什麼是爬蟲?在哪裡應用?

要了解什麼是爬蟲,我們先用簡單一點的方式來說,它就是一種
自動抓取」網站資料的過程。

假設你今天進到了一間超級大的圖書館,剛好說你今天想找一本有關
「運動-棒球規則」的書,
那這時候你就會需要一個超級厲害的圖書館管理員,可以幫你用超快、
超有效率的方式找到你要的書。
在上面的例子裡,超級大的圖書館就是「網站」、運動區就是指定的「網頁」、
運動區裡的書籍就是「構成網頁的原始碼」,而籃球就是你所指定的「明確資訊」。

再想像一下,如果你今天想要獲取某個電商網站上的打折商品,但好巧不巧的,
那個網站沒有設計一個功能,是讓你可以直接看有什麼商品是打折的,
而需要你一個一個的手動尋找,那豈不是費人費時又費力嗎?
不只要花費更多時間,就連效率可能都會大打折扣。

這就是為什麼我們需要爬蟲的原因: 因為懶,懶著去一步一步找尋想要的資料,
所以我們創造了「爬蟲」這個東西,讓我們可以用
更方便、更有效率的方式來完成任務。

那爬蟲可以用在那些地方呢?除了剛剛提到的電商網站,還有許多可以應用的網站,
以下舉幾個實際的例子參考:

  1. 在所有飯店與航空公司網站,找出最划算的房間與機票
    e.g.: booking
  2. 監測特定商品價格,當有商品特價時立即通知
    e.g.: CamelCamelCamel
  3. 從股票相關的網站中獲取股價、財報等以追蹤股價趨勢
    e.g.: Yahoo Finance
  4. 從基金網站中獲取基金資料,用來分析投資
    e.g. Morningstar

https://ithelp.ithome.com.tw/upload/images/20240917/20169196FjD94eVTuh.png

上圖是在booking官網所呈現出的網頁畫面。
可以看到,它可以透過用戶給予的特定資訊,給予用戶想要的回饋。

https://ithelp.ithome.com.tw/upload/images/20240917/20169196GRDzFOZnvA.png

二、爬蟲是如何發送請求並獲取網頁數據的

那在理解完爬蟲是什麼東西後,我們就可以更深入的探討它的運作原理。
在首先,我們要先很簡單的介紹一些名詞:

HTTP(超文本傳輸協定):
客戶端(使用者)和伺服器端(網站)之間請求和應答的標準

HTML(超文本標記語言):
一種用於建立網頁的標準標記語言

爬蟲的運作其實並不複雜,簡單來說,我們會先發送HTTP請求給我們的目標網站,
試圖獲取我們所要的內容。而目標網站在收到我們的請求後,就會發回一個回覆訊息,
我們稱為HTTP Response。
接著,就是對所回傳response的處理,如:使用BeautifulSoup。
最後,將我們所解析完的數據儲存到自己的資料庫中,並依需求進行處理分析。
再簡化一些來說,爬蟲其實就是幾個流程的結合:

發送請求 -> 獲取網頁數據 -> 解析數據 -> 儲存和分析數據

(詳細的完整內容將會在下一章解釋,此處只是陳述大概念)

三、爬蟲有法律與道德問題?!

爬蟲也有法律跟道德的問題?不就是在不同的網站中抓取資料而已嗎,
怎麼會有這個問題?這可能是很多人的疑問。
但事實上,爬蟲與法律其實是息息相關的,而在其中,最重要的莫過於「隱私權」。
舉個例子,若是你隨意抓取網站上的任意一張圖片,就有一定的可能觸發「版權法
此外,若是你利用爬蟲來獲取別人的私人訊息,
如電話、住家地址,就可能會觸發會「數據保護法」,給自身帶來許多的法律問題。

所以說,在進行網頁爬蟲之前,我們最好先詳細閱讀過網站的使用條款,
並注意版權的問題,且不要隨意竊取別人的隱私資料,
以免給自己帶來不必要的麻煩。

小結:

在今天,我學習了爬蟲的相關概念,並嘗試用我自己的方式理解,
並用口語化的方式舉例。本日我只是對整個大概念做粗略的探討,
更詳細的部分會等到之後的章節再一併學習並呈現。

參考資料:
https://zh.wikipedia.org/zh-tw/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE

https://zh.wikipedia.org/zh-tw/HTML

https://webscrapingpro.tw/what-is-web-scraping/

https://pala.tw/what-is-web-crawler/


上一篇
[Day2] 學習目標
下一篇
[Day4] 爬蟲工作流程
系列文
Python大戰之網頁爬蟲29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言